package com.hzh.scala

object Demo4Fun {
  def main(args: Array[String]): Unit = {
    /**
     * 函数的定义 --函数可以在任何位置定义
     * 1、函数可以定义在object中，object中的函数可以直接调用
     * 2、可以在方法或者函数内部定义函数
     *
     */

    //函数的调用

    //使用object名称调用

    //如果函数在同一个作用域中，可以直接使用函数名


    println(plus(1, 2))


    def plus(i: Int,j: Int):Int={
      i+j
    }

//
//    println(Demo4Fun.add(1, 4))

    /**
     * 方法调用的简写
     *
     */
    //简写，前提 是函数的参数只有一个
//    val str = "java,spark,hadoop"
//    val array1: Array[String]=str split ","

    /**
     * 函数的简写
     *
     * 1、如果最后一行作为返回值，return 可以省略
     * 2、如果函数的代码逻辑之后一行，{}可以省略
     * 3、返回值的类型可以自动推断
     * 4、如果参数列表为空 ()可以不写，如果定义时没有括号，调用时也不能有括号
     */


    println(Demo4Fun.pr())







  }
//  def add(x:Int,y:Int):Int={
//    x+y
//  }
//  def add2(x:Int,y:Int):Int=x+y

  def pr()= "scala"


}
